package com.salt.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.salt.entity.IdleAffiliateCpsIncomeDetail;

import java.util.Date;
import java.util.Map;

/**
 * 闲鱼联盟CPS佣金明细服务接口
 */
public interface IdleAffiliateCpsIncomeDetailService {
    
    /**
     * 获取指定日期范围内的佣金明细汇总数据
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @param inviteCode
     * @return 汇总数据，包含：
     *         - hasCouponCount: 有优惠券的数量
     *         - noCouponCount: 无优惠券的数量
     *         - totalAssessAmount: 预估金额总和
     */
    Map<String, Object> getIncomeSummary(Date startDate, Date endDate, String inviteCode);

    /**
     * 分页查询佣金明细数据
     * @param page 分页参数
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @param billState 账单状态
     * @param orderState 订单状态
     * @param hasCoupon 是否有优惠券
     * @param keyword 关键词（商品标题或订单ID）
     * @param inviteCode
     * @return 分页数据
     */
    IPage<IdleAffiliateCpsIncomeDetail> pageQuery(
            Page<IdleAffiliateCpsIncomeDetail> page,
            Date startDate,
            Date endDate,
            Integer billState,
            Integer orderState,
            Boolean hasCoupon,
            String keyword, String inviteCode);
} 